<!doctype html>
<html lang="en" class="{% block scrolling %}scroll-smooth scroll-pt-20{% endblock %}">
<head>
	<meta charset="utf-8">
	<meta name='viewport' content='width=device-width, initial-scale=1'>
	<title>{{ title }} | PHPStan</title>
	<meta property="og:title" content="{{ title }}" />
	<link rel="stylesheet" href="https://rsms.me/inter/inter.css">
	<link rel="stylesheet" href="/tmp/app.pcss">

	{% block socialImages %}
		<meta property="og:image" content="/tmp/images/logo-big.png" />
		<meta name="twitter:image" content="/tmp/images/logo-big.png" />
	{% endblock %}

	<link rel="icon" type="image/png" href="/tmp/images/favicon.png">
	<link rel="alternate" type="application/rss+xml" title="PHPStan Blog" href="/tmp/rss.xml">

	<meta name="twitter:card" content="summary_large_image" />
	<meta name="twitter:site" content="@phpstan" />
	<meta name="twitter:creator" content="@ondrejmirtes" />
	<meta name="twitter:title" content="{{ title }}" />
	<script src="https://cdn.usefathom.com/script.js" data-site="UDESFNRN" defer></script>
	<script>
		const query = window.matchMedia('(prefers-color-scheme: dark)');
		const themeKey = 'phpstanWebTheme';
		query.addEventListener('change', (event) => {
			if (themeKey in localStorage) {
				return;
			}
			if (event.matches) {
				document.documentElement.classList.add('dark');
			} else {
				document.documentElement.classList.remove('dark');
			}
		});
		if (localStorage[themeKey] === 'dark' || (!(themeKey in localStorage) && query.matches)) {
			document.documentElement.classList.add('dark');
		} else {
			document.documentElement.classList.remove('dark');
		}
	</script>
</head>
<body>

<div class="flex flex-col main-area" style="{% block bgColor %}background-color: #fff{% endblock %}">
	<nav class="bg-white border-b border-gray-200 flex-shrink z-20 nav-header">
		<!-- ko with: mainMenu -->
			<div class="max-w-5xl mx-auto px-4 md:px-6">
				<div class="flex justify-between h-16">
					<div class="flex flex-grow">
						<div class="w-64 flex flex-none items-center">
							<a href="/"><img class="block h-12 w-auto rounded-lg" src="/tmp/images/logo.png" alt="PHPStan" /></a>
							<a href="/" class="ml-4"><svg xmlns="http://www.w3.org/2000/svg" class="h-6" viewBox="0 0 275 46" fill="none">
								<g clip-path="url(#clip0)">
									<path d="M36.86 16.24C36.86 24.61 31.36 31.05 21.24 31.05H13.12V40.67C13.12 43.1 11.81 44.42 9.37 44.42H3.75C1.31 44.42 0 43.1 0 40.67V4.44C0 2 1.31 0.690002 3.75 0.690002H21.24C31.42 0.690002 36.86 7.87 36.86 16.24ZM23.74 16.37C23.74 14.06 22.11 11.93 19.87 11.93H13.12V20.62H19.87C20.9389 20.5481 21.9386 20.0656 22.6599 19.2735C23.3812 18.4813 23.7682 17.441 23.74 16.37V16.37Z" fill="#231F20"/>
									<path d="M41.79 40.67V4.44C41.79 2 43.11 0.690002 45.54 0.690002H51.17C53.6 0.690002 54.91 2 54.91 4.44V18.12H67.72V4.44C67.72 2 69 0.690002 71.47 0.690002H77.09C79.53 0.690002 80.84 2 80.84 4.44V40.67C80.84 43.1 79.53 44.42 77.09 44.42H71.47C69.03 44.42 67.72 43.1 67.72 40.67V28.8H54.91V40.67C54.91 43.1 53.6 44.42 51.17 44.42H45.54C43.11 44.42 41.79 43.1 41.79 40.67Z" fill="#231F20"/>
									<path d="M125.32 16.24C125.32 24.61 119.82 31.05 109.7 31.05H101.58V40.67C101.58 43.1 100.27 44.42 97.83 44.42H92.21C89.78 44.42 88.46 43.1 88.46 40.67V4.44C88.46 2 89.78 0.690002 92.21 0.690002H109.7C119.89 0.690002 125.32 7.87 125.32 16.24ZM112.2 16.37C112.2 14.06 110.58 11.93 108.33 11.93H101.58V20.62H108.33C109.4 20.5505 110.401 20.0688 111.123 19.2761C111.845 18.4834 112.231 17.4416 112.2 16.37V16.37Z" fill="#231F20"/>
									<path d="M128.51 35.11C127.64 32.73 128.89 31.11 131.26 30.55L134.82 29.74C137.01 29.24 138.13 30.17 139.44 32.17C140.75 34.17 142.88 35.11 145.88 35.11C148.88 35.11 151 34.11 151 32C151 30.94 150.44 29.57 147.31 28.57L142.38 26.69C140.26 26.01 129.63 23.2 129.51 13.89C129.51 5.43 136.63 0 146.19 0C152.94 0 157.68 2.69 160.5 7.68C161.81 9.93 160.75 11.81 158.31 12.49L154.94 13.43C152.81 14.06 151.62 13.18 150.06 11.43C149.597 10.9432 149.033 10.5631 148.408 10.3161C147.782 10.0692 147.111 9.96131 146.44 10C144.32 10 142.32 10.87 142.32 12.74C142.32 13.99 143.19 15.12 145.88 16.05L150.75 17.74C160.5 21.12 163.56 25.36 163.75 31.55C163.75 40.86 155.38 45.1 145.89 45.1C137.26 45.1 131 41.54 128.51 35.11Z" fill="#231F20"/>
									<path d="M170.56 33.05V20.87H167.93C167.678 20.8949 167.424 20.8636 167.186 20.7785C166.948 20.6933 166.731 20.5563 166.553 20.3775C166.374 20.1986 166.237 19.9822 166.152 19.7441C166.066 19.5059 166.035 19.2517 166.06 19V13.43C166.035 13.1783 166.066 12.9241 166.152 12.6859C166.237 12.4477 166.374 12.2314 166.553 12.0525C166.731 11.8737 166.948 11.7367 167.186 11.6515C167.424 11.5664 167.678 11.5351 167.93 11.56H171.93L173 5.75C173.068 5.08776 173.396 4.47943 173.911 4.05786C174.426 3.63628 175.087 3.43573 175.75 3.5H180.63C180.967 3.46111 181.308 3.49919 181.628 3.61139C181.948 3.72358 182.238 3.90695 182.477 4.14767C182.716 4.38839 182.897 4.68019 183.007 5.00105C183.116 5.32192 183.152 5.66348 183.11 6V11.56H189.05C189.302 11.5351 189.556 11.5664 189.794 11.6515C190.032 11.7367 190.249 11.8737 190.427 12.0525C190.606 12.2314 190.743 12.4477 190.828 12.6859C190.914 12.9241 190.945 13.1783 190.92 13.43V19C190.946 19.2525 190.916 19.5078 190.832 19.7472C190.747 19.9867 190.611 20.2043 190.432 20.3843C190.253 20.5643 190.036 20.7022 189.797 20.788C189.558 20.8737 189.303 20.9051 189.05 20.88H183.11V33.18C183.11 34.62 183.8 35.18 184.68 35.18C185.99 35.18 186.42 33.87 186.42 32.68C186.432 32.3455 186.412 32.0107 186.36 31.68C186.24 30.37 186.67 29.68 187.92 29.68H192.55C193.008 29.6305 193.47 29.7408 193.856 29.9923C194.242 30.2437 194.53 30.6209 194.67 31.06C194.963 31.8838 195.131 32.7466 195.17 33.62C195.17 42.8 188.67 45.11 183.05 45.11C177.18 45.1 170.56 42.67 170.56 33.05Z" fill="#231F20"/>
									<path d="M197 28C197 18.06 203.69 10.88 212.43 10.88C216.68 10.88 220.06 12.69 221.81 15.69V15.32C221.81 12.88 223.12 11.57 225.55 11.57H230.92C233.36 11.57 234.67 12.88 234.67 15.32V40.67C234.67 43.1 233.36 44.42 230.92 44.42H225.55C223.12 44.42 221.81 43.1 221.81 40.67V40.36C220.06 43.29 216.68 45.1 212.43 45.1C203.67 45.1 197 37.92 197 28ZM222 28C222 23.87 219.69 20.69 215.94 20.69C212.19 20.69 209.88 23.87 209.88 28C209.88 32.13 212.19 35.31 215.94 35.31C219.69 35.31 222 32.11 222 28Z" fill="#231F20"/>
									<path d="M240.78 40.67V15.31C240.78 12.87 242.09 11.56 244.53 11.56H249.9C252.34 11.56 253.65 12.87 253.65 15.31V15.62C255.46 12.68 258.33 10.87 262.77 10.87C272.95 10.87 274.2 19.8 274.2 25.18V40.67C274.2 43.1 272.89 44.42 270.45 44.42H265.08C262.64 44.42 261.33 43.1 261.33 40.67V26.42C261.33 23.86 260.77 20.87 257.46 20.87C254.15 20.87 253.65 23.87 253.65 26.42V40.67C253.65 43.1 252.34 44.42 249.9 44.42H244.53C242.09 44.42 240.78 43.1 240.78 40.67Z" fill="#231F20"/>
								</g>
								<defs>
									<clipPath id="clip0">
									<rect width="275" height="46" fill="white"/>
									</clipPath>
								</defs>
							</svg></a>
						</div>
						<div class="flex flex-grow justify-between">
							<div class="hidden md:-my-px md:flex px-4 flex-grow">
								<div class="flex flex-shrink md:-my-px">
									{% for item in mainMenu %}
										{% if item.pageType === pageType %}
											<a href="{{ item.link }}" class="mr-8 inline-flex items-center px-1 pt-1 border-b-2 border-blue-500 text-md font-medium leading-5 text-gray-900 focus:outline-none focus:border-blue-700 transition duration-150 ease-in-out">
												<span>{{ item.title }}</span>
											</a>
										{% else %}
											<a href="{{ item.link }}" class="mr-8 inline-flex items-center px-1 pt-1 border-b-2 border-transparent text-md font-medium leading-5 text-gray-500 hover:text-gray-700 hover:border-gray-300 focus:outline-none focus:text-gray-700 focus:border-gray-300 transition duration-150 ease-in-out">
												<span>{{ item.title }}</span>
											</a>
										{% endif %}
									{% endfor %}
								</div>

								<div class="items-center flex flex-grow justify-end">
									<div id="docsearch"></div>
									<a target="_blank" href="https://github.com/phpstan/phpstan" class="ml-4 px-1 pt-1 border-b-2 border-transparent text-md font-medium leading-5 text-gray-500 hover:text-gray-700 focus:outline-none focus:text-gray-700 transition duration-150 ease-in-out">
										<svg class="h-6 w-6" fill="currentColor" viewBox="0 0 24 24">
											<path fill-rule="evenodd" d="M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z" clip-rule="evenodd"/>
										</svg>
									</a>
								</div>
							</div>
						</div>
					</div>
					<div class="-mr-2 flex items-center md:hidden">
						<div id="docsearch-mobile"></div>
						<button data-bind="click: toggleMainMenu" class="ml-2 inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-gray-500 hover:bg-gray-100 focus:outline-none focus:bg-gray-100 focus:text-gray-500 transition duration-150 ease-in-out">
							<svg class="h-6 w-6" stroke="currentColor" fill="none" viewBox="0 0 24 24">
								<path data-bind="css: {hidden: mainMenuOpen, 'inline-flex': !mainMenuOpen()}" class="inline-flex" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16" />
								<path data-bind="css: {hidden: !mainMenuOpen(), 'inline-flex': mainMenuOpen}" class="hidden" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12" />
							</svg>
						</button>
					</div>
				</div>
			</div>
			<div data-bind="css: {block: mainMenuOpen, hidden: !mainMenuOpen()}" class="hidden md:hidden">
				<div class="pt-2 pb-3">
					{% for item in mainMenu %}
						{% if item.pageType === pageType %}
							<a href="{{ item.link }}" class="algolia-active mt-1 block pl-3 pr-4 py-2 border-l-4 border-blue-500 text-base font-medium text-blue-700 bg-blue-50 focus:outline-none focus:text-blue-800 focus:bg-blue-100 focus:border-blue-700 transition duration-150 ease-in-out">
								{{ item.title }}
							</a>
						{% else %}
							<a href="{{ item.link }}" class="mt-1 block pl-3 pr-4 py-2 border-l-4 border-transparent text-base font-medium text-gray-600 hover:text-gray-800 hover:bg-gray-50 hover:border-gray-300 focus:outline-none focus:text-gray-800 focus:bg-gray-50 focus:border-gray-300 transition duration-150 ease-in-out">
								{{ item.title }}
							</a>
						{% endif %}
					{% endfor %}

					<a target="_blank" href="https://github.com/phpstan/phpstan" class="flex items-center mt-1 block pl-3 pr-4 py-2 border-l-4 border-transparent text-base font-medium text-gray-600 hover:text-gray-800 hover:bg-gray-50 hover:border-gray-300 focus:outline-none focus:text-gray-800 focus:bg-gray-50 focus:border-gray-300 transition duration-150 ease-in-out">
						<span>GitHub</span>
						<svg fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" class="w-4 h-4 ml-1"><path d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"></path></svg>
					</a>
				</div>
			</div>
		<!-- /ko -->
	</nav>
	<div>
		<main>
			<div class="max-w-5xl mx-auto md:px-6">
				{% block content %}{% endblock %}
			</div>
		</main>
	</div>
</div>

{% block scripts %}{% endblock %}

</body>
</html>
